The generation of 3D content and in particular of 3D animated content is becoming more and more popular. Despite this trend, creating 3D characters that can be animated is still typically left to artists with specialized training.
Among the specialized skills of 3D artists or animators, the rigging of 3D characters is considered to be one of the most challenging. Rigging is usually a manual process. A 3D character is typically composed using one or more meshes, a skeleton and skinning weights. A mesh is typically a set of polygons defining the surface of an object, which often serves as the appearance of a 3D character. An object can be a character or any other discrete element in 3D visualization. A skeleton is generally a set of rigid items, or “bones”, generally under the mesh of an object, analogous to anatomical bones. These skeleton bones are typically bonded to the mesh in order to provide motion to the 3D character model. Rigging is the process of creating a suitable skeleton for a character, binding the skeleton to the character mesh using skinning weights and defining forward kinematic parameters or inverse kinematic parameters that determine how the character moves. Forward kinematic and inverse kinematic animation are discussed further below. Rigging typically involves defining the relations governing the motion of the mesh polygons with respect to the underlying skeleton. Skinning weights are generally a set of weights defining the relations between the motion of the mesh polygons and the underlying skeleton bones. Rigging a 3D character often requires a robust solution that can not only model a static 3D character, but also a dynamic character where every movement of the skeleton brings a corresponding deformation to the polygon mesh. Essentially, the process involves manually placing skeleton bones and joints inside the character and specifying which parts of the character are attached to which bone.
Animation of a 3D character uses the skeleton and corresponding skinning weights associated with the character mesh. Animation is the motion applied to the character skeleton which drives the 3D character mesh that defines the appearance of a 3D character. The animation can be applied using forward or inverse kinematic animation. 3D characters are typically animated using synthetic motion data (i.e. motion data generated manually by an animator) or using actual motion data captured using a forward kinematic motion capture process. Retargeting can be used to adapt the motion data for one skeleton to animate another skeleton to accommodate variations in the number of bones and/or skeleton hierarchy and/or bone length. Retargeting of motion data generally involves characterization, which is the process of bringing the character to a reference pose and of mapping the joints of the character's skeleton to a predefined reference skeleton.
Two general animation techniques are forward kinematic (FK) and inverse kinematic (IK) animation. FK animation can animate a 3D character using motion data that specifies the joint angles of the skeleton of the 3D character, which in turn animates the at least one mesh that defines the appearance of the 3D character. IK animation refers to processes that animate a 3D character by posing the at least one mesh that defines the appearance of a 3D character and determining the joint angles of the 3D character's skeleton in the pose. In FK animation, the shape or pose of an object is calculated from the bones as well as the bend and rotation of each joint in the skeleton. For example in FK animation, the mesh that serves as the appearance of a 3D character is posed as calculated from the bones as well as the bend and rotation of each joint in the skeleton. In IK animation, the shape or pose of an object is used to calculate the bones as well as the bend and rotation of each joint in the skeleton. For example in IK animation, the mesh that serves as the appearance of a 3D character is posed and then the bones as well as the bend and rotation of each joint in the skeleton is calculated. Generally, IK animation requires different and more complicated calculations than FK animation as the mesh is not fixed due to the mesh deforming as the joints are bent and rotated.